package cn.springbak.publish.dao;

import cn.springbak.publish.pojo.SysNotice;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;

import java.util.List;

@Mapper
public interface SysNoticeDao {
    /**
     * 基于条件查询通告信息
     * @param notice
     * @return 返回查询到的通告信息
     */
    List<SysNotice> selectNotices(SysNotice notice);

    /***
     * 基于多个id执行记录删除操作
     * @param ids 要删除的记录id，这里的语法为可变参数(可以看成特殊数组)
     * 可变参数主要是用于简化名字相同，参数类型也相同，但个数不同的这样的一系列方法的定义
     * @return 删除的行数
     */
    int deleteById(/*@Param("ids")*/ Long... ids);//1,2,3


    /**将内存中的notice对象，更新到数据库*/
    int updateNotice(SysNotice notice);

    /**将内存中的notice对象，持久化到数据库*/
    int insertNotice(SysNotice notice);

    /**
     * 基于id查询notice信息
     * @param id 查询条件
     * @return 查询到的notice对象(存储表中的一行记录)
     * 说明：简单的sql映射可以直接将sql语句写到方法上面，以注解进行声明
     */
    @Select("select * from sys_notice where id=#{id}")
    SysNotice  selectById(/*@Param("id")*/ Long id);
}
